# -*- coding: utf-8 -*-
HEADER_MAP = {'130': ('中国联通', '2G号段（GSM网络）'),
 '131': ('中国联通', '2G号段（GSM网络）'),
 '132': ('中国联通', '2G号段（GSM网络）'),
 '133': ('中国电信', '2G/3G号段(CDMA2000网络）'),
 '134': ('中国移动', '2G（GSM网络）'),
 '135': ('中国移动', '2G（GSM网络）'),
 '136': ('中国移动', '2G（GSM网络）'),
 '137': ('中国移动', '2G（GSM网络）'),
 '138': ('中国移动', '2G（GSM网络）'),
 '139': ('中国移动', '2G（GSM网络）'),
 '145': ('中国联通', '3G上网卡'),
 '147': ('中国移动', '3G上网卡'),
 '150': ('中国移动', '2G（GSM网络）'),
 '151': ('中国移动', '2G（GSM网络）'),
 '152': ('中国移动', '2G（GSM网络）'),
 '153': ('中国电信', '2G/3G号段(CDMA2000网络）'),
 '155': ('中国联通', '2G号段（GSM网络）'),
 '156': ('中国联通', '2G号段（GSM网络）'),
 '157': ('中国移动', '3G（TD-SCDMA网络）'),
 '158': ('中国移动', '2G（GSM网络）'),
 '159': ('中国移动', '2G（GSM网络）'),
 '1700': ('中国电信', '虚拟运营商专属号段'),
 '1705': ('中国移动', '虚拟运营商专属号段'),
 '1709': ('中国联通', '虚拟运营商专属号段'),
 '176': ('中国联通', '4G号段'),
 '177': ('中国电信', '4G号段'),
 '178': ('中国移动', '4G号段'),
 '180': ('中国电信', '2G/3G号段(CDMA2000网络）'),
 '181': ('中国电信', '2G/3G号段(CDMA2000网络）'),
 '182': ('中国移动', '2G（GSM网络）'),
 '183': ('中国移动', '2G（GSM网络）'),
 '184': ('中国移动', '2G（GSM网络）'),
 '185': ('中国联通', '4G号段'),
 '186': ('中国联通', '3G号段（WCDMA网络）'),
 '187': ('中国移动', '3G（TD-SCDMA网络）'),
 '188': ('中国移动', '3G（TD-SCDMA网络）'),
 '189': ('中国电信', '2G/3G号段(CDMA2000网络）')}

BLANK = ("","")

def getprovider(number, encoding='utf-8'):
    '''
    a simple funtion to compute md5 hash code for numbers
    '''
    string_ = str(number)
    header = string_[:3]
    if header == '170':
        header = string_[:4]
    return HEADER_MAP.get(header, BLANK)

if __name__ == "__main__":
    import sys
    if len(sys.argv) != 2:
        print("usage: python md5_hash.py <input_filename>")
        sys.exit(0)
    # read lines and compute md5 hash
    print('read file {} ...'.format(sys.argv[1]))
    with open(sys.argv[1],'r') as fp:
        lines = fp.readlines()
        lines = [line.strip() for line in lines]
        lines = [getprovider(line)[0] + '\n' for line in lines]
    # write it to md5_output.txt
    print("write output as `provider_output.txt` ...")
    with open("provider_output.txt", "w") as fp:
        fp.writelines(lines)

